#include<graphics.h>
#include<conio.h>
#include<stdio.h>
int main()
{float width,height,gravity;//游戏画面大小,重力加速度
float ball_x,ball_y,ball_vy,radius;//球圆心坐标，y方向速度，球大小
width=600;//宽度
height=400;//高度
gravity=0.6;//重力加速度
initgraph(width,height);//画布

radius=20;
ball_x=width/4;
ball_y=height-radius;
ball_vy=0;

float rect_left_x,rect_top_y,rect_width,rect_height;//方块最左边、最高处、宽度、高度坐标
float rect_vx=-3;
rect_width=20;
rect_height=100;
rect_left_x=width*3/4;
rect_top_y=height-rect_height;

int score=0;//分数
int isballonfloor=1;//小球在底部
while(1){
if(_kbhit())//当按键时
{
char input=_getch();
if(input==' '&&isballonfloor==1)//当按空格键时
	{
ball_vy=-18;
isballonfloor=0;//小球在空中
	}
}
ball_vy=ball_vy+gravity;
ball_y=ball_y+ball_vy;//小球向下走

if (ball_y>=height-radius)
{ball_vy=0;
ball_y=height-radius;//小球停在底部
isballonfloor=1;//小球在底部
}

rect_left_x=rect_left_x+rect_vx;//方块向左走
if(rect_left_x<=0)//方块离开左边
{
score=score+1;
rect_left_x=width;//方块重新出现在左边
rect_height=rand()%int(height/4)+height/4;//设置随机高度
rect_vx=rand()/float(RAND_MAX)*4-7;//设置随机速度
}

if((rect_left_x<=ball_x+radius)
	&&(height-rect_height<=ball_y+radius)
	&&(rect_left_x+rect_width>=ball_x-radius))
{
score=0;
Sleep(100);
}

cleardevice();//清空画面
fillcircle(ball_x,ball_y,radius);//填充小球
fillrectangle(rect_left_x,height-rect_height,rect_left_x+rect_width,height);//填充方块

TCHAR s[20];//定义字符串数组
_stprintf_s(s,_T("%d"),score);//将score转化为字符串
settextstyle(40,0,_T("宋体"));//设置文字、字体
outtextxy(50,30,s);//输出得分文字

Sleep(10);
}
_getch();
closegraph();
return 0;
}